package com.mall.seckill.mapper;

import com.mall.entity.TbCar;
import com.mall.entity.TbGoodsEvaluate;
import com.mall.entity.TbItmeSpec;
import com.mall.entity.TbSeckillItem;
import com.mall.seckill.entity.vo.SeckillItemVo;
import io.swagger.models.auth.In;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 秒杀商品映射器
 *
 * @author: W
 * @date: 2021/07/18/9:23
 * Other:
 */
@Mapper
public interface SeckillItemMapper {


    /**
     * 找到所有
     *
     * @param seckillItem 秒杀商品
     * @return {@link List<TbSeckillItem>}
     */
    List<TbSeckillItem> findAll(TbSeckillItem seckillItem);

    /**
     * 找到秒杀名单
     *
     * @param time 时间
     * @return {@link List<SeckillItemVo>}
     */
    List<SeckillItemVo> findSeckillList(String time);

    /**
     * 发现商品评价
     *
     * @param id id
     * @return {@link List<TbGoodsEvaluate>}
     */
    List<TbGoodsEvaluate> findGoodsEvaluate(Integer id);

    /**
     * 通过秒杀项id找到货物
     *
     * @param id id
     * @return {@link TbItmeSpec}
     */
    TbItmeSpec findGoodsBySeckillItemId(Integer id);

    /**
     * 发现车uidand商品id
     *
     * @param uid     uid
     * @param goodsId 商品id
     * @return {@link TbCar}
     */
    TbCar findCarByUidandGoodsId(@Param("uid") Integer uid, @Param("goodsId") Long goodsId);

    /**
     * 添加汽车
     *
     * @param tbCar 结核病的车
     */
    void addCar(TbCar tbCar);

    /**
     * 找到一个
     *
     * @param id id
     * @return {@link TbSeckillItem}
     */
    TbSeckillItem findOne(Long id);

    /**
     * 加秒杀商品
     *
     * @param seckillItemVo 秒杀商品签证官
     */
    void addSeckillItem(SeckillItemVo seckillItemVo);

    /**
     * 按秒杀id删除
     *
     * @param id id
     */
    void deleteBySeckillId(Long id);

    void updateSaleNumById(Integer seckillId);

    Boolean update(TbSeckillItem tbSeckillItem);

}
